﻿using DevExpress.XtraEditors;
using System;
using System.Data.SqlClient;
using System.IO;
using System.Windows.Forms;

namespace QuanLyKhachSan
{
    public partial class FormSaoLuuPhucHoi : XtraForm
    {
        private int type;

        public FormSaoLuuPhucHoi(int type)
        {
            InitializeComponent();
            this.type = type;
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnSaoluu_Click(object sender, EventArgs e)
        {
            DirectoryInfo drt = Directory.GetParent(txtSaoluu.Text);
            if (txtSaoluu.Text == "" || !Directory.Exists(drt.FullName))
                XtraMessageBox.Show("Vui lòng chọn đường dẫn khác", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            else
            {
                string s = "backup database QLKHACHSAN to disk ='" + txtSaoluu.Text +".bak"+"'";
                SqlConnection con = new SqlConnection("server=.;database=QLKHACHSAN;integrated security=true");
                SqlCommand cmd = con.CreateCommand();
                cmd.CommandText = s;
                try
                {
                    con.Open();
                    int chek = cmd.ExecuteNonQuery();
                    XtraMessageBox.Show("Sao lưu thành công", "Thông báo", MessageBoxButtons.OK);
                    this.Close();
                }
                catch (SqlException ex)
                {

                    XtraMessageBox.Show("Một lỗi nào đó đã xãy ra trong quá trình sao lưu, vui lòng chọn lại đường dẫn và thực hiện lại thao tác", "Lỗi", MessageBoxButtons.OK);
                }
                finally
                {
                    con.Close();
                }
            }
        }

        private void btnPhuchoi_Click(object sender, EventArgs e)
        {
            DirectoryInfo drt = Directory.GetParent(txtPhuchoi.Text);
            if (txtPhuchoi.Text == "" || !Directory.Exists(drt.FullName))
                XtraMessageBox.Show("Vui lòng chọn đường dẫn khác","Cảnh báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            else
            {
                if (txtTenDB.Text == "")
                {
                    string s = "restore database " + txtTenDB.Text + " from disk ='" + txtPhuchoi.Text + "'";
                    SqlConnection con = new SqlConnection("server=.;database=QLKHACHSAN;integrated security=true");
                    SqlCommand cmd = con.CreateCommand();
                    cmd.CommandText = s;
                    try
                    {
                        con.Open();
                        int chek = cmd.ExecuteNonQuery();
                        XtraMessageBox.Show("Phục hồi thành công", "Thông báo", MessageBoxButtons.OK);
                        this.Close();
                    }
                    catch (SqlException ex)
                    {

                        XtraMessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        con.Close();
                    }
                }
                else
                    XtraMessageBox.Show("Vui lòng chọn tên database","Thông báo",MessageBoxButtons.OK);
            }
        }

        private void btnDDSaoluu_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                txtSaoluu.Text = saveFileDialog1.FileName;
        }

        private void btnDDPhuchoi_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                txtPhuchoi.Text = openFileDialog1.FileName;
        }

        private void FormSaoLuuPhucHoi_Load(object sender, EventArgs e)
        {
            if (type == 0)
            {
                btnDDPhuchoi.Enabled = false;
                btnPhuchoi.Enabled = false;
                txtTenDB.Enabled = false;
            }
            else
            {
                btnDDSaoluu.Enabled = false;
                btnSaoluu.Enabled = false;
            }
        }
    }
}
